/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tewi.controllers;

import pl.tewi.exceptions.GeneralFrameworkException;
import pl.tewi.types.ApplicationDesc;

/**
 * Interfejs komponentu budującego aplikację do wdrożenia na serwer aplikacyjny
 * @author Marcin Kwapisz
 */
public interface ApplicationAssembler {

    /**
     * Buduje obiekt reprezentujący opis aplikacji do zainstalowania na serwerze
     * aplikacyjnym
     * @param applicationDesc opis aplikacji uzyskany na podstawie adnotacji
     * @return opis aplikacji do zainstalowania
     * @throws GeneralFrameworkException problem z budową opisu aplikacji
     */
    Object build(ApplicationDesc applicationDesc) throws GeneralFrameworkException;
}
